package com.atguigu.bigdata.scala.chapter06

object Scala13_Object_Interface_4 {

    def main(args: Array[String]): Unit = {

        // TODO 特质的初始化
        // 如果将特质理解为抽象类，那么也可以初始化

        // TODO 如果类混入了多个特质的场合
        // 初始化顺序为
        // 1. 特质的初始化高于类的初始化
        // 2. 混入的多个特质，按照从左到右的顺序进行初始化
        // 3. 初始化只能执行一次
        // TODO 如果类继承了父类，同时混入了特质的场合
        // 1. 特质只和当前类有关，是同一个级别，和上下级没有关系
        // 2. 父类的初始化高于当前类和特质的。
        new User()

        // t1...
        // parent
        // t2...
        // user
    }
    trait T1 {
        println("t1...")
    }
    trait T2 extends T1 {
        println("t2...")
    }

    class Parent extends T1 {
        println("parent...")
    }
    class User extends Parent with T1 with T2 {
        println("user...")
    }
}
